package com.shiwaixiangcun.authz.service;

import com.shiwaixiangcun.authz.dto.VerifyLoginDto;
import com.shiwaixiangcun.core.domain.account.Account;
import com.shiwaixiangcun.core.plugin.dto.MonkeyDto;
import com.shiwaixiangcun.core.service.BaseService;
import com.shiwaixiangcun.core.web.response.MonkeyResponseDto;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import java.util.Set;

/**
 * Created by SilentWu on 2017/2/27.
 */
public interface AccountService extends BaseService<Account, Long> {
    Account login(String accountStr, String password, Set<String> scopes);

    Account dynamicPasswordLogin(String accountStr, String password, Set<String> scopes);

    MonkeyResponseDto sendDynamicPasswordMessage(String mobile);

    Account getAccount(String accessToken);

    Map<String,Object> getAccountUserInfo();

    void modifyUserInfo(MonkeyDto monkeyDto);

    void setPushAlias(String pushAlias);

    String uploadHeadImage(MultipartFile file);

    Boolean verifyLogin(HttpServletRequest request, HttpServletResponse response, VerifyLoginDto verifyLoginDto);

    void verifyCode(HttpServletRequest request, HttpServletResponse response);

    Object startCaptcha(HttpServletRequest request);


}
